/*
 * Copyright (c) 2007 T.Cogghe, D.Leroux, S.Lévignac, S.Rives
 * 
 * Permission is hereby granted, free of charge, to any person obtaining a copy
 * of this software and associated documentation files (the "Software"), to deal
 * in the Software without restriction, including without limitation the rights
 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 * copies of the Software, and to permit persons to whom the Software is
 * furnished to do so, subject to the following conditions:
 * 
 * The above copyright notice and this permission notice shall be included in
 * all copies or substantial portions of the Software.
 * 
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
 * THE SOFTWARE.
 */
#include "IHM/dialogueRepertoire.hh"




IHM::DialogueRepertoire::DialogueRepertoire(BaseObjectType* cobject, const Glib::RefPtr<Gnome::Glade::Xml>& refGlade)
	: Gtk::FileChooserDialog(cobject) //m_refGlade(refGlade),
{
	Gtk::Button*b;
	getW(refGlade,b,"b_Repertoire_Annuler");
	b->signal_clicked().connect(sigc::mem_fun(*this,&DialogueRepertoire::annuler));
	getW(refGlade,b,"b_Repertoire_OK");
	b->signal_clicked().connect(sigc::mem_fun(*this,&DialogueRepertoire::ok));
}

IHM::DialogueRepertoire::~DialogueRepertoire() {}

void IHM::DialogueRepertoire::ok() {
	std::string rep=IHM::env->dRep->get_filename();
	DIR*d=opendir(rep.c_str());
	struct dirent*e;
	while((e=readdir(d))) {
		if(strlen(e->d_name)>4
			&&
		   (
		     (!strcasecmp(e->d_name+strlen(e->d_name)-4,".jpg"))
			||
		     (!strcmp(e->d_name+strlen(e->d_name)-4,".png"))
			||
		     (!strcmp(e->d_name+strlen(e->d_name)-4,".bmp"))
			||
		     (!strcmp(e->d_name+strlen(e->d_name)-4,".raw"))
		   )) {
			Glib::ustring tmp(rep);
			tmp+='/';	/* FIXME : pas portable */
			tmp+=e->d_name;
			IHM::env->ajoutListe(tmp);
		}
	}
	closedir(d);
	IHM::env->dRep->hide();
}

void IHM::DialogueRepertoire::annuler() {
	hide();
}

